<?php

/**
 * producto actions.
 *
 * @package    cronos-doctrine
 * @subpackage producto
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class productoActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
   
      //Alimento
      $servicio_tipo_id = 2;
      $this->usuario_id = $request->getParameter('usuario_id');
      
      //LLamadas a los productos favoritos del cliente
      $favoritos = new UsuarioHasProducto();
      $this->favoritos = $favoritos->getProductosFavoritos($this->usuario_id);
      
      //llamado a los productos adquiridos por el cliente
      $servicios = new Servicio();
      $this->servicios = $servicios->getServicioTipo($servicio_tipo_id,$this->usuario_id);
      
      $categoria = new Categoria();
      $this->categoria = $categoria->getCategoriaTipo(1);
      
      $marca = new Marca();
      $this->marca = $marca->getMarca();
      
      
  }
  
  public function executeProductoConsumido(sfWebRequest $request)
  {
   
      //Usuario
      $this->usuario_id = $request->getParameter('usuario_id');
      
      //LLamadas a los productos favoritos del cliente
      $favoritos = new UsuarioHasProducto();
      $this->favoritos = $favoritos->getProductosFavoritos($this->usuario_id);
      
      
  }
  
  public function executeProductoMarca(sfWebRequest $request)
  {
   
      //Usuario
      $this->usuarioids = $request->getParameter('usuarioids');
      
      //LLamadas a los productos favoritos del cliente
      $favoritos = new UsuarioHasMarca();
      $this->favoritos = $favoritos->getMarcaFavoritos($this->usuarioids);
      
      
      
      
  }
  public function executeSearch(sfWebRequest $request)
  {
   
      
      $categoria_id = $request->getParameter('categoria_id');
      $marca_id     = $request->getParameter('marca_id');
      $nombre       = $request->getParameter('nombre');
      $this->num    = $request->getParameter('num');
     
      
     $producto = new Producto();
     $this->productos = $producto->getProductoSearch($categoria_id,$marca_id,$nombre);
      
  }
  
  
  
   public function executeSelectMarcas(sfWebRequest $request)
  {
   
      //Usuario
      $this->usuarioid = $request->getParameter('usuarioids');
      
      $favoritos = new UsuarioHasMarca();
      $this->favoritos = $favoritos->getMarcaFavoritos($this->usuarioid);
      
      
      $this->form = new UsuarioHasMarcaForm();
      $this->form->setWidget('usuario_id', new sfWidgetFormInputHidden(array(),array('value' => $this->usuarioid)));
      
  }
  
    public function executeCreateMarcas(sfWebRequest $request)
  {
   
    //Redirecciona a la pagina de no encontrada
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->usuarioid = $request->getParameter('usuarioids');
    $usuario_has_marca = $request->getParameter('usuario_has_marca');
    
    //se borran todos los registros de la base de datos!
    Doctrine_Query::create()->from('UsuarioHasMarca uhm')
    ->where('uhm.usuario_id=?',$usuario_has_marca['usuario_id'])
    ->delete()->execute();
    
    foreach ($usuario_has_marca['marca_id'] as $usuari){
        
        $marcas_save = new UsuarioHasMarca();
        $marcas_save->setEmpresaId($this->getUser()->getAttribute('agente_user_empresa_id'));
        $marcas_save->setUsuarioId($usuario_has_marca['usuario_id']);
        $marcas_save->setMarcaId($usuari);
        $marcas_save->save();
        
    }
    

    
    //Crea un Nuevo Formulario para selectMarcas
    $this->form = new UsuarioHasMarcaForm();
    
    
    $this->setTemplate('selectMarcas');
  }

  
  
    public function executeProductoBusq(sfWebRequest $request)
  {
   
      $this->usuario_id = $request->getParameter('usuario_id');
      $this->categoria_id = $request->getParameter('categoria_id');
      $this->marca_id = $request->getParameter('marca_id');
      $this->nombre   = $request->getParameter('nombre');
      
      $productoCom = urldecode(stripslashes($request->getParameter('productoComprados')));
      $product = explode(",",$productoCom);
      
      
      //Todos los productos de la base de datos
      $busqProductos = new Producto();
      $this->busqProductos = $busqProductos->getProductoFavoritos($this->categoria_id,$this->marca_id,$this->nombre,$product);
      
  }
  
  
   public function executeAprobado(sfWebRequest $request)
  {
    try {  
        
        $favorito = new UsuarioHasProducto();
        $favorito->setUsuarioId($request->getParameter('usuario_id'));
        $favorito->setProductoId($request->getParameter('producto_id'));
        $favorito->save();
        
        $notice = 'Producto en Favoritos';  
        $this->getUser()->setFlash('notice', $notice);
        $this->redirect('producto/index?usuario_id='.$request->getParameter('usuario_id'));
        
    } catch (Doctrine_Exception $e) {
        $this->getUser()->setFlash('error', 'No se pudo colocar el item en Favoritos, existen referencias a esta entrada.'); 
        $this->redirect('producto/index?usuario_id='.$request->getParameter('usuario_id'));
     }    
     
  }

    
   public function executeDesAprobado(sfWebRequest $request)
    {
    try {  
        
        $favorito = Doctrine_Core::getTable('UsuarioHasProducto')->find(array($request->getParameter('usuario_id'),$request->getParameter('producto_id')));
        $favorito->delete();
        
        $notice = 'Producto quitado de Favoritos';  
        $this->getUser()->setFlash('notice', $notice);
        $this->redirect('producto/index?usuario_id='.$request->getParameter('usuario_id'));
        
    } catch (Doctrine_Exception $e) {
        $this->getUser()->setFlash('error', 'No se pudo colocar el item en Favoritos, existen referencias a esta entrada.'); 
        $this->redirect('producto/index?usuario_id='.$request->getParameter('usuario_id'));
     }    
     
  }
  
  
}
